package com.ruoyi.translate.service.impl;

import com.alibaba.fastjson2.JSON;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.translate.domain.HtImport;
import com.ruoyi.translate.mapper.HtImportMapper;
import com.ruoyi.translate.service.IHtImportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 导入Service业务层处理
 */
@Service
public class HtImportServiceImpl implements IHtImportService {
    @Autowired
    private HtImportMapper htImportMapper;

    /**
     * 查询导入列表
     *
     * @param htImport 导入对象
     * @return 导入集合
     */
    @Override
    public List<HtImport> selectHtImportList(HtImport htImport) {
        return htImportMapper.selectHtImportList(htImport);
    }

    /**
     * 导入数据
     *
     * @param importList 导入数据列表
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    @Override
    public String importData(List<HtImport> importList, Boolean isUpdateSupport, String operName) {
        if (StringUtils.isNull(importList) || importList.size() == 0) {
            throw new ServiceException("导入数据不能为空！");
        }

        // 创建一个新的导入记录
        HtImport htImport = new HtImport();
        htImport.setCreateBy(operName);
        htImport.setCreateTime(DateUtils.getNowDate());

        // 将整个导入列表转换为JSON字符串，并存储到words字段
        String jsonData = JSON.toJSONString(importList);
        htImport.setWords(jsonData);

        // 批量插入数据
        htImportMapper.insert(htImport);

        return "恭喜您，数据导入成功！";
    }

    /**
     * 修改导入数据
     */
    @Override
    public int updateHtImport(HtImport htImport) {
        htImport.setUpdateTime(DateUtils.getNowDate());
        return htImportMapper.updateHtImport(htImport);
    }

    /**
     * 查询导入数据详细
     */
    @Override
    public HtImport selectHtImportById(Long id) {
        return htImportMapper.selectHtImportById(id);
    }
    /**
     * 批量删除导入数据
     *
     * @param ids 需要删除的导入数据ID数组
     * @return 结果
     */
    @Override
    public int deleteHtImportByIds(Long[] ids) {
        return htImportMapper.deleteHtImportByIds(ids);
    }
}
